1 /+ 2 + Copyright (c) 2014-2018 The Khronos Group Inc. 3 + 4 + Permission is hereby granted, free of charge, to any person obtaining a copy 5 + of this software and/or associated documentation files (the "Materials"), 6 + to deal in the Materials without restriction, including without limitation 7 + the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 + and/or sell copies of the Materials, and to permit persons to whom the 9 + Materials are furnished to do so, subject to the following conditions: 10 + 11 + The above copyright notice and this permission notice shall be included in 12 + all copies or substantial portions of the Materials. 13 + 14 + MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS 15 + STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND 16 + HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 17 + 18 + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19 + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 + FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS 24 + IN THE MATERIALS. 25 +/ 26 27 /+ 28 + This header is automatically generated by the same tool that creates 29 + the Binary Section of the SPIR-V specification. 30 +/ 31 32 /+ 33 + Enumeration tokens for SPIR-V, in various styles: 34 + C, C++, C++11, JSON, Lua, Python, C#, D 35 + 36 + - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL 37 + - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL 38 + - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL 39 + - Lua will use tables, e.g.: spv.SourceLanguage.GLSL 40 + - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] 41 + - C# will use enum classes in the Specification class located in the "Spv" namespace, 42 + e.g.: Spv.Specification.SourceLanguage.GLSL 43 + - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL 44 + 45 + Some tokens act like mask values, which can be OR'd together, 46 + while others are mutually exclusive. The mask-like ones have 47 + "Mask" in their name, and a parallel enum that has the shift 48 + amount (1 << x) for each corresponding enumerant. 49 +/ 50 51 module spv; 52 53 enum uint MagicNumber = 0x07230203; 54 enum uint Version = 0x00010300; 55 enum uint Revision = 6; 56 enum uint OpCodeMask = 0xffff; 57 enum uint WordCountShift = 16; 58 59 enum SourceLanguage : uint 60 { 61 Unknown = 0, 62 ESSL = 1, 63 GLSL = 2, 64 OpenCL_C = 3, 65 OpenCL_CPP = 4, 66 HLSL = 5, 67 } 68 69 enum ExecutionModel : uint 70 { 71 Vertex = 0, 72 TessellationControl = 1, 73 TessellationEvaluation = 2, 74 Geometry = 3, 75 Fragment = 4, 76 GLCompute = 5, 77 Kernel = 6, 78 TaskNV = 5267, 79 MeshNV = 5268, 80 RayGenerationNV = 5313, 81 IntersectionNV = 5314, 82 AnyHitNV = 5315, 83 ClosestHitNV = 5316, 84 MissNV = 5317, 85 CallableNV = 5318, 86 } 87 88 enum AddressingModel : uint 89 { 90 Logical = 0, 91 Physical32 = 1, 92 Physical64 = 2, 93 } 94 95 enum MemoryModel : uint 96 { 97 Simple = 0, 98 GLSL450 = 1, 99 OpenCL = 2, 100 VulkanKHR = 3, 101 } 102 103 enum ExecutionMode : uint 104 { 105 Invocations = 0, 106 SpacingEqual = 1, 107 SpacingFractionalEven = 2, 108 SpacingFractionalOdd = 3, 109 VertexOrderCw = 4, 110 VertexOrderCcw = 5, 111 PixelCenterInteger = 6, 112 OriginUpperLeft = 7, 113 OriginLowerLeft = 8, 114 EarlyFragmentTests = 9, 115 PointMode = 10, 116 Xfb = 11, 117 DepthReplacing = 12, 118 DepthGreater = 14, 119 DepthLess = 15, 120 DepthUnchanged = 16, 121 LocalSize = 17, 122 LocalSizeHint = 18, 123 InputPoints = 19, 124 InputLines = 20, 125 InputLinesAdjacency = 21, 126 Triangles = 22, 127 InputTrianglesAdjacency = 23, 128 Quads = 24, 129 Isolines = 25, 130 OutputVertices = 26, 131 OutputPoints = 27, 132 OutputLineStrip = 28, 133 OutputTriangleStrip = 29, 134 VecTypeHint = 30, 135 ContractionOff = 31, 136 Initializer = 33, 137 Finalizer = 34, 138 SubgroupSize = 35, 139 SubgroupsPerWorkgroup = 36, 140 SubgroupsPerWorkgroupId = 37, 141 LocalSizeId = 38, 142 LocalSizeHintId = 39, 143 PostDepthCoverage = 4446, 144 DenormPreserve = 4459, 145 DenormFlushToZero = 4460, 146 SignedZeroInfNanPreserve = 4461, 147 RoundingModeRTE = 4462, 148 RoundingModeRTZ = 4463, 149 StencilRefReplacingEXT = 5027, 150 OutputLinesNV = 5269, 151 OutputPrimitivesNV = 5270, 152 DerivativeGroupQuadsNV = 5289, 153 DerivativeGroupLinearNV = 5290, 154 OutputTrianglesNV = 5298, 155 } 156 157 enum StorageClass : uint 158 { 159 UniformConstant = 0, 160 Input = 1, 161 Uniform = 2, 162 Output = 3, 163 Workgroup = 4, 164 CrossWorkgroup = 5, 165 Private = 6, 166 Function = 7, 167 Generic = 8, 168 PushConstant = 9, 169 AtomicCounter = 10, 170 Image = 11, 171 StorageBuffer = 12, 172 CallableDataNV = 5328, 173 IncomingCallableDataNV = 5329, 174 RayPayloadNV = 5338, 175 HitAttributeNV = 5339, 176 IncomingRayPayloadNV = 5342, 177 ShaderRecordBufferNV = 5343, 178 } 179 180 enum Dim : uint 181 { 182 _1D = 0, 183 _2D = 1, 184 _3D = 2, 185 Cube = 3, 186 Rect = 4, 187 Buffer = 5, 188 SubpassData = 6, 189 } 190 191 enum SamplerAddressingMode : uint 192 { 193 None = 0, 194 ClampToEdge = 1, 195 Clamp = 2, 196 Repeat = 3, 197 RepeatMirrored = 4, 198 } 199 200 enum SamplerFilterMode : uint 201 { 202 Nearest = 0, 203 Linear = 1, 204 } 205 206 enum ImageFormat : uint 207 { 208 Unknown = 0, 209 Rgba32f = 1, 210 Rgba16f = 2, 211 R32f = 3, 212 Rgba8 = 4, 213 Rgba8Snorm = 5, 214 Rg32f = 6, 215 Rg16f = 7, 216 R11fG11fB10f = 8, 217 R16f = 9, 218 Rgba16 = 10, 219 Rgb10A2 = 11, 220 Rg16 = 12, 221 Rg8 = 13, 222 R16 = 14, 223 R8 = 15, 224 Rgba16Snorm = 16, 225 Rg16Snorm = 17, 226 Rg8Snorm = 18, 227 R16Snorm = 19, 228 R8Snorm = 20, 229 Rgba32i = 21, 230 Rgba16i = 22, 231 Rgba8i = 23, 232 R32i = 24, 233 Rg32i = 25, 234 Rg16i = 26, 235 Rg8i = 27, 236 R16i = 28, 237 R8i = 29, 238 Rgba32ui = 30, 239 Rgba16ui = 31, 240 Rgba8ui = 32, 241 R32ui = 33, 242 Rgb10a2ui = 34, 243 Rg32ui = 35, 244 Rg16ui = 36, 245 Rg8ui = 37, 246 R16ui = 38, 247 R8ui = 39, 248 } 249 250 enum ImageChannelOrder : uint 251 { 252 R = 0, 253 A = 1, 254 RG = 2, 255 RA = 3, 256 RGB = 4, 257 RGBA = 5, 258 BGRA = 6, 259 ARGB = 7, 260 Intensity = 8, 261 Luminance = 9, 262 Rx = 10, 263 RGx = 11, 264 RGBx = 12, 265 Depth = 13, 266 DepthStencil = 14, 267 sRGB = 15, 268 sRGBx = 16, 269 sRGBA = 17, 270 sBGRA = 18, 271 ABGR = 19, 272 } 273 274 enum ImageChannelDataType : uint 275 { 276 SnormInt8 = 0, 277 SnormInt16 = 1, 278 UnormInt8 = 2, 279 UnormInt16 = 3, 280 UnormShort565 = 4, 281 UnormShort555 = 5, 282 UnormInt101010 = 6, 283 SignedInt8 = 7, 284 SignedInt16 = 8, 285 SignedInt32 = 9, 286 UnsignedInt8 = 10, 287 UnsignedInt16 = 11, 288 UnsignedInt32 = 12, 289 HalfFloat = 13, 290 Float = 14, 291 UnormInt24 = 15, 292 UnormInt101010_2 = 16, 293 } 294 295 enum ImageOperandsShift : uint 296 { 297 Bias = 0, 298 Lod = 1, 299 Grad = 2, 300 ConstOffset = 3, 301 Offset = 4, 302 ConstOffsets = 5, 303 Sample = 6, 304 MinLod = 7, 305 MakeTexelAvailableKHR = 8, 306 MakeTexelVisibleKHR = 9, 307 NonPrivateTexelKHR = 10, 308 VolatileTexelKHR = 11, 309 } 310 311 enum ImageOperandsMask : uint 312 { 313 MaskNone = 0, 314 Bias = 0x00000001, 315 Lod = 0x00000002, 316 Grad = 0x00000004, 317 ConstOffset = 0x00000008, 318 Offset = 0x00000010, 319 ConstOffsets = 0x00000020, 320 Sample = 0x00000040, 321 MinLod = 0x00000080, 322 MakeTexelAvailableKHR = 0x00000100, 323 MakeTexelVisibleKHR = 0x00000200, 324 NonPrivateTexelKHR = 0x00000400, 325 VolatileTexelKHR = 0x00000800, 326 } 327 328 enum FPFastMathModeShift : uint 329 { 330 NotNaN = 0, 331 NotInf = 1, 332 NSZ = 2, 333 AllowRecip = 3, 334 Fast = 4, 335 } 336 337 enum FPFastMathModeMask : uint 338 { 339 MaskNone = 0, 340 NotNaN = 0x00000001, 341 NotInf = 0x00000002, 342 NSZ = 0x00000004, 343 AllowRecip = 0x00000008, 344 Fast = 0x00000010, 345 } 346 347 enum FPRoundingMode : uint 348 { 349 RTE = 0, 350 RTZ = 1, 351 RTP = 2, 352 RTN = 3, 353 } 354 355 enum LinkageType : uint 356 { 357 Export = 0, 358 Import = 1, 359 } 360 361 enum AccessQualifier : uint 362 { 363 ReadOnly = 0, 364 WriteOnly = 1, 365 ReadWrite = 2, 366 } 367 368 enum FunctionParameterAttribute : uint 369 { 370 Zext = 0, 371 Sext = 1, 372 ByVal = 2, 373 Sret = 3, 374 NoAlias = 4, 375 NoCapture = 5, 376 NoWrite = 6, 377 NoReadWrite = 7, 378 } 379 380 enum Decoration : uint 381 { 382 RelaxedPrecision = 0, 383 SpecId = 1, 384 Block = 2, 385 BufferBlock = 3, 386 RowMajor = 4, 387 ColMajor = 5, 388 ArrayStride = 6, 389 MatrixStride = 7, 390 GLSLShared = 8, 391 GLSLPacked = 9, 392 CPacked = 10, 393 BuiltIn = 11, 394 NoPerspective = 13, 395 Flat = 14, 396 Patch = 15, 397 Centroid = 16, 398 Sample = 17, 399 Invariant = 18, 400 Restrict = 19, 401 Aliased = 20, 402 Volatile = 21, 403 Constant = 22, 404 Coherent = 23, 405 NonWritable = 24, 406 NonReadable = 25, 407 Uniform = 26, 408 SaturatedConversion = 28, 409 Stream = 29, 410 Location = 30, 411 Component = 31, 412 Index = 32, 413 Binding = 33, 414 DescriptorSet = 34, 415 Offset = 35, 416 XfbBuffer = 36, 417 XfbStride = 37, 418 FuncParamAttr = 38, 419 FPRoundingMode = 39, 420 FPFastMathMode = 40, 421 LinkageAttributes = 41, 422 NoContraction = 42, 423 InputAttachmentIndex = 43, 424 Alignment = 44, 425 MaxByteOffset = 45, 426 AlignmentId = 46, 427 MaxByteOffsetId = 47, 428 NoSignedWrap = 4469, 429 NoUnsignedWrap = 4470, 430 ExplicitInterpAMD = 4999, 431 OverrideCoverageNV = 5248, 432 PassthroughNV = 5250, 433 ViewportRelativeNV = 5252, 434 SecondaryViewportRelativeNV = 5256, 435 PerPrimitiveNV = 5271, 436 PerViewNV = 5272, 437 PerTaskNV = 5273, 438 PerVertexNV = 5285, 439 NonUniformEXT = 5300, 440 HlslCounterBufferGOOGLE = 5634, 441 HlslSemanticGOOGLE = 5635, 442 } 443 444 enum BuiltIn : uint 445 { 446 Position = 0, 447 PointSize = 1, 448 ClipDistance = 3, 449 CullDistance = 4, 450 VertexId = 5, 451 InstanceId = 6, 452 PrimitiveId = 7, 453 InvocationId = 8, 454 Layer = 9, 455 ViewportIndex = 10, 456 TessLevelOuter = 11, 457 TessLevelInner = 12, 458 TessCoord = 13, 459 PatchVertices = 14, 460 FragCoord = 15, 461 PointCoord = 16, 462 FrontFacing = 17, 463 SampleId = 18, 464 SamplePosition = 19, 465 SampleMask = 20, 466 FragDepth = 22, 467 HelperInvocation = 23, 468 NumWorkgroups = 24, 469 WorkgroupSize = 25, 470 WorkgroupId = 26, 471 LocalInvocationId = 27, 472 GlobalInvocationId = 28, 473 LocalInvocationIndex = 29, 474 WorkDim = 30, 475 GlobalSize = 31, 476 EnqueuedWorkgroupSize = 32, 477 GlobalOffset = 33, 478 GlobalLinearId = 34, 479 SubgroupSize = 36, 480 SubgroupMaxSize = 37, 481 NumSubgroups = 38, 482 NumEnqueuedSubgroups = 39, 483 SubgroupId = 40, 484 SubgroupLocalInvocationId = 41, 485 VertexIndex = 42, 486 InstanceIndex = 43, 487 SubgroupEqMask = 4416, 488 SubgroupEqMaskKHR = 4416, 489 SubgroupGeMask = 4417, 490 SubgroupGeMaskKHR = 4417, 491 SubgroupGtMask = 4418, 492 SubgroupGtMaskKHR = 4418, 493 SubgroupLeMask = 4419, 494 SubgroupLeMaskKHR = 4419, 495 SubgroupLtMask = 4420, 496 SubgroupLtMaskKHR = 4420, 497 BaseVertex = 4424, 498 BaseInstance = 4425, 499 DrawIndex = 4426, 500 DeviceIndex = 4438, 501 ViewIndex = 4440, 502 BaryCoordNoPerspAMD = 4992, 503 BaryCoordNoPerspCentroidAMD = 4993, 504 BaryCoordNoPerspSampleAMD = 4994, 505 BaryCoordSmoothAMD = 4995, 506 BaryCoordSmoothCentroidAMD = 4996, 507 BaryCoordSmoothSampleAMD = 4997, 508 BaryCoordPullModelAMD = 4998, 509 FragStencilRefEXT = 5014, 510 ViewportMaskNV = 5253, 511 SecondaryPositionNV = 5257, 512 SecondaryViewportMaskNV = 5258, 513 PositionPerViewNV = 5261, 514 ViewportMaskPerViewNV = 5262, 515 FullyCoveredEXT = 5264, 516 TaskCountNV = 5274, 517 PrimitiveCountNV = 5275, 518 PrimitiveIndicesNV = 5276, 519 ClipDistancePerViewNV = 5277, 520 CullDistancePerViewNV = 5278, 521 LayerPerViewNV = 5279, 522 MeshViewCountNV = 5280, 523 MeshViewIndicesNV = 5281, 524 BaryCoordNV = 5286, 525 BaryCoordNoPerspNV = 5287, 526 FragSizeEXT = 5292, 527 FragmentSizeNV = 5292, 528 FragInvocationCountEXT = 5293, 529 InvocationsPerPixelNV = 5293, 530 LaunchIdNV = 5319, 531 LaunchSizeNV = 5320, 532 WorldRayOriginNV = 5321, 533 WorldRayDirectionNV = 5322, 534 ObjectRayOriginNV = 5323, 535 ObjectRayDirectionNV = 5324, 536 RayTminNV = 5325, 537 RayTmaxNV = 5326, 538 InstanceCustomIndexNV = 5327, 539 ObjectToWorldNV = 5330, 540 WorldToObjectNV = 5331, 541 HitTNV = 5332, 542 HitKindNV = 5333, 543 IncomingRayFlagsNV = 5351, 544 } 545 546 enum SelectionControlShift : uint 547 { 548 Flatten = 0, 549 DontFlatten = 1, 550 } 551 552 enum SelectionControlMask : uint 553 { 554 MaskNone = 0, 555 Flatten = 0x00000001, 556 DontFlatten = 0x00000002, 557 } 558 559 enum LoopControlShift : uint 560 { 561 Unroll = 0, 562 DontUnroll = 1, 563 DependencyInfinite = 2, 564 DependencyLength = 3, 565 } 566 567 enum LoopControlMask : uint 568 { 569 MaskNone = 0, 570 Unroll = 0x00000001, 571 DontUnroll = 0x00000002, 572 DependencyInfinite = 0x00000004, 573 DependencyLength = 0x00000008, 574 } 575 576 enum FunctionControlShift : uint 577 { 578 Inline = 0, 579 DontInline = 1, 580 Pure = 2, 581 Const = 3, 582 } 583 584 enum FunctionControlMask : uint 585 { 586 MaskNone = 0, 587 Inline = 0x00000001, 588 DontInline = 0x00000002, 589 Pure = 0x00000004, 590 Const = 0x00000008, 591 } 592 593 enum MemorySemanticsShift : uint 594 { 595 Acquire = 1, 596 Release = 2, 597 AcquireRelease = 3, 598 SequentiallyConsistent = 4, 599 UniformMemory = 6, 600 SubgroupMemory = 7, 601 WorkgroupMemory = 8, 602 CrossWorkgroupMemory = 9, 603 AtomicCounterMemory = 10, 604 ImageMemory = 11, 605 OutputMemoryKHR = 12, 606 MakeAvailableKHR = 13, 607 MakeVisibleKHR = 14, 608 } 609 610 enum MemorySemanticsMask : uint 611 { 612 MaskNone = 0, 613 Acquire = 0x00000002, 614 Release = 0x00000004, 615 AcquireRelease = 0x00000008, 616 SequentiallyConsistent = 0x00000010, 617 UniformMemory = 0x00000040, 618 SubgroupMemory = 0x00000080, 619 WorkgroupMemory = 0x00000100, 620 CrossWorkgroupMemory = 0x00000200, 621 AtomicCounterMemory = 0x00000400, 622 ImageMemory = 0x00000800, 623 OutputMemoryKHR = 0x00001000, 624 MakeAvailableKHR = 0x00002000, 625 MakeVisibleKHR = 0x00004000, 626 } 627 628 enum MemoryAccessShift : uint 629 { 630 Volatile = 0, 631 Aligned = 1, 632 Nontemporal = 2, 633 MakePointerAvailableKHR = 3, 634 MakePointerVisibleKHR = 4, 635 NonPrivatePointerKHR = 5, 636 } 637 638 enum MemoryAccessMask : uint 639 { 640 MaskNone = 0, 641 Volatile = 0x00000001, 642 Aligned = 0x00000002, 643 Nontemporal = 0x00000004, 644 MakePointerAvailableKHR = 0x00000008, 645 MakePointerVisibleKHR = 0x00000010, 646 NonPrivatePointerKHR = 0x00000020, 647 } 648 649 enum Scope : uint 650 { 651 CrossDevice = 0, 652 Device = 1, 653 Workgroup = 2, 654 Subgroup = 3, 655 Invocation = 4, 656 QueueFamilyKHR = 5, 657 } 658 659 enum GroupOperation : uint 660 { 661 Reduce = 0, 662 InclusiveScan = 1, 663 ExclusiveScan = 2, 664 ClusteredReduce = 3, 665 PartitionedReduceNV = 6, 666 PartitionedInclusiveScanNV = 7, 667 PartitionedExclusiveScanNV = 8, 668 } 669 670 enum KernelEnqueueFlags : uint 671 { 672 NoWait = 0, 673 WaitKernel = 1, 674 WaitWorkGroup = 2, 675 } 676 677 enum KernelProfilingInfoShift : uint 678 { 679 CmdExecTime = 0, 680 } 681 682 enum KernelProfilingInfoMask : uint 683 { 684 MaskNone = 0, 685 CmdExecTime = 0x00000001, 686 } 687 688 enum Capability : uint 689 { 690 Matrix = 0, 691 Shader = 1, 692 Geometry = 2, 693 Tessellation = 3, 694 Addresses = 4, 695 Linkage = 5, 696 Kernel = 6, 697 Vector16 = 7, 698 Float16Buffer = 8, 699 Float16 = 9, 700 Float64 = 10, 701 Int64 = 11, 702 Int64Atomics = 12, 703 ImageBasic = 13, 704 ImageReadWrite = 14, 705 ImageMipmap = 15, 706 Pipes = 17, 707 Groups = 18, 708 DeviceEnqueue = 19, 709 LiteralSampler = 20, 710 AtomicStorage = 21, 711 Int16 = 22, 712 TessellationPointSize = 23, 713 GeometryPointSize = 24, 714 ImageGatherExtended = 25, 715 StorageImageMultisample = 27, 716 UniformBufferArrayDynamicIndexing = 28, 717 SampledImageArrayDynamicIndexing = 29, 718 StorageBufferArrayDynamicIndexing = 30, 719 StorageImageArrayDynamicIndexing = 31, 720 ClipDistance = 32, 721 CullDistance = 33, 722 ImageCubeArray = 34, 723 SampleRateShading = 35, 724 ImageRect = 36, 725 SampledRect = 37, 726 GenericPointer = 38, 727 Int8 = 39, 728 InputAttachment = 40, 729 SparseResidency = 41, 730 MinLod = 42, 731 Sampled1D = 43, 732 Image1D = 44, 733 SampledCubeArray = 45, 734 SampledBuffer = 46, 735 ImageBuffer = 47, 736 ImageMSArray = 48, 737 StorageImageExtendedFormats = 49, 738 ImageQuery = 50, 739 DerivativeControl = 51, 740 InterpolationFunction = 52, 741 TransformFeedback = 53, 742 GeometryStreams = 54, 743 StorageImageReadWithoutFormat = 55, 744 StorageImageWriteWithoutFormat = 56, 745 MultiViewport = 57, 746 SubgroupDispatch = 58, 747 NamedBarrier = 59, 748 PipeStorage = 60, 749 GroupNonUniform = 61, 750 GroupNonUniformVote = 62, 751 GroupNonUniformArithmetic = 63, 752 GroupNonUniformBallot = 64, 753 GroupNonUniformShuffle = 65, 754 GroupNonUniformShuffleRelative = 66, 755 GroupNonUniformClustered = 67, 756 GroupNonUniformQuad = 68, 757 SubgroupBallotKHR = 4423, 758 DrawParameters = 4427, 759 SubgroupVoteKHR = 4431, 760 StorageBuffer16BitAccess = 4433, 761 StorageUniformBufferBlock16 = 4433, 762 StorageUniform16 = 4434, 763 UniformAndStorageBuffer16BitAccess = 4434, 764 StoragePushConstant16 = 4435, 765 StorageInputOutput16 = 4436, 766 DeviceGroup = 4437, 767 MultiView = 4439, 768 VariablePointersStorageBuffer = 4441, 769 VariablePointers = 4442, 770 AtomicStorageOps = 4445, 771 SampleMaskPostDepthCoverage = 4447, 772 StorageBuffer8BitAccess = 4448, 773 UniformAndStorageBuffer8BitAccess = 4449, 774 StoragePushConstant8 = 4450, 775 DenormPreserve = 4464, 776 DenormFlushToZero = 4465, 777 SignedZeroInfNanPreserve = 4466, 778 RoundingModeRTE = 4467, 779 RoundingModeRTZ = 4468, 780 Float16ImageAMD = 5008, 781 ImageGatherBiasLodAMD = 5009, 782 FragmentMaskAMD = 5010, 783 StencilExportEXT = 5013, 784 ImageReadWriteLodAMD = 5015, 785 SampleMaskOverrideCoverageNV = 5249, 786 GeometryShaderPassthroughNV = 5251, 787 ShaderViewportIndexLayerEXT = 5254, 788 ShaderViewportIndexLayerNV = 5254, 789 ShaderViewportMaskNV = 5255, 790 ShaderStereoViewNV = 5259, 791 PerViewAttributesNV = 5260, 792 FragmentFullyCoveredEXT = 5265, 793 MeshShadingNV = 5266, 794 ImageFootprintNV = 5282, 795 FragmentBarycentricNV = 5284, 796 ComputeDerivativeGroupQuadsNV = 5288, 797 FragmentDensityEXT = 5291, 798 ShadingRateNV = 5291, 799 GroupNonUniformPartitionedNV = 5297, 800 ShaderNonUniformEXT = 5301, 801 RuntimeDescriptorArrayEXT = 5302, 802 InputAttachmentArrayDynamicIndexingEXT = 5303, 803 UniformTexelBufferArrayDynamicIndexingEXT = 5304, 804 StorageTexelBufferArrayDynamicIndexingEXT = 5305, 805 UniformBufferArrayNonUniformIndexingEXT = 5306, 806 SampledImageArrayNonUniformIndexingEXT = 5307, 807 StorageBufferArrayNonUniformIndexingEXT = 5308, 808 StorageImageArrayNonUniformIndexingEXT = 5309, 809 InputAttachmentArrayNonUniformIndexingEXT = 5310, 810 UniformTexelBufferArrayNonUniformIndexingEXT = 5311, 811 StorageTexelBufferArrayNonUniformIndexingEXT = 5312, 812 RayTracingNV = 5340, 813 VulkanMemoryModelKHR = 5345, 814 VulkanMemoryModelDeviceScopeKHR = 5346, 815 ComputeDerivativeGroupLinearNV = 5350, 816 SubgroupShuffleINTEL = 5568, 817 SubgroupBufferBlockIOINTEL = 5569, 818 SubgroupImageBlockIOINTEL = 5570, 819 } 820 821 enum Op : uint 822 { 823 OpNop = 0, 824 OpUndef = 1, 825 OpSourceContinued = 2, 826 OpSource = 3, 827 OpSourceExtension = 4, 828 OpName = 5, 829 OpMemberName = 6, 830 OpString = 7, 831 OpLine = 8, 832 OpExtension = 10, 833 OpExtInstImport = 11, 834 OpExtInst = 12, 835 OpMemoryModel = 14, 836 OpEntryPoint = 15, 837 OpExecutionMode = 16, 838 OpCapability = 17, 839 OpTypeVoid = 19, 840 OpTypeBool = 20, 841 OpTypeInt = 21, 842 OpTypeFloat = 22, 843 OpTypeVector = 23, 844 OpTypeMatrix = 24, 845 OpTypeImage = 25, 846 OpTypeSampler = 26, 847 OpTypeSampledImage = 27, 848 OpTypeArray = 28, 849 OpTypeRuntimeArray = 29, 850 OpTypeStruct = 30, 851 OpTypeOpaque = 31, 852 OpTypePointer = 32, 853 OpTypeFunction = 33, 854 OpTypeEvent = 34, 855 OpTypeDeviceEvent = 35, 856 OpTypeReserveId = 36, 857 OpTypeQueue = 37, 858 OpTypePipe = 38, 859 OpTypeForwardPointer = 39, 860 OpConstantTrue = 41, 861 OpConstantFalse = 42, 862 OpConstant = 43, 863 OpConstantComposite = 44, 864 OpConstantSampler = 45, 865 OpConstantNull = 46, 866 OpSpecConstantTrue = 48, 867 OpSpecConstantFalse = 49, 868 OpSpecConstant = 50, 869 OpSpecConstantComposite = 51, 870 OpSpecConstantOp = 52, 871 OpFunction = 54, 872 OpFunctionParameter = 55, 873 OpFunctionEnd = 56, 874 OpFunctionCall = 57, 875 OpVariable = 59, 876 OpImageTexelPointer = 60, 877 OpLoad = 61, 878 OpStore = 62, 879 OpCopyMemory = 63, 880 OpCopyMemorySized = 64, 881 OpAccessChain = 65, 882 OpInBoundsAccessChain = 66, 883 OpPtrAccessChain = 67, 884 OpArrayLength = 68, 885 OpGenericPtrMemSemantics = 69, 886 OpInBoundsPtrAccessChain = 70, 887 OpDecorate = 71, 888 OpMemberDecorate = 72, 889 OpDecorationGroup = 73, 890 OpGroupDecorate = 74, 891 OpGroupMemberDecorate = 75, 892 OpVectorExtractDynamic = 77, 893 OpVectorInsertDynamic = 78, 894 OpVectorShuffle = 79, 895 OpCompositeConstruct = 80, 896 OpCompositeExtract = 81, 897 OpCompositeInsert = 82, 898 OpCopyObject = 83, 899 OpTranspose = 84, 900 OpSampledImage = 86, 901 OpImageSampleImplicitLod = 87, 902 OpImageSampleExplicitLod = 88, 903 OpImageSampleDrefImplicitLod = 89, 904 OpImageSampleDrefExplicitLod = 90, 905 OpImageSampleProjImplicitLod = 91, 906 OpImageSampleProjExplicitLod = 92, 907 OpImageSampleProjDrefImplicitLod = 93, 908 OpImageSampleProjDrefExplicitLod = 94, 909 OpImageFetch = 95, 910 OpImageGather = 96, 911 OpImageDrefGather = 97, 912 OpImageRead = 98, 913 OpImageWrite = 99, 914 OpImage = 100, 915 OpImageQueryFormat = 101, 916 OpImageQueryOrder = 102, 917 OpImageQuerySizeLod = 103, 918 OpImageQuerySize = 104, 919 OpImageQueryLod = 105, 920 OpImageQueryLevels = 106, 921 OpImageQuerySamples = 107, 922 OpConvertFToU = 109, 923 OpConvertFToS = 110, 924 OpConvertSToF = 111, 925 OpConvertUToF = 112, 926 OpUConvert = 113, 927 OpSConvert = 114, 928 OpFConvert = 115, 929 OpQuantizeToF16 = 116, 930 OpConvertPtrToU = 117, 931 OpSatConvertSToU = 118, 932 OpSatConvertUToS = 119, 933 OpConvertUToPtr = 120, 934 OpPtrCastToGeneric = 121, 935 OpGenericCastToPtr = 122, 936 OpGenericCastToPtrExplicit = 123, 937 OpBitcast = 124, 938 OpSNegate = 126, 939 OpFNegate = 127, 940 OpIAdd = 128, 941 OpFAdd = 129, 942 OpISub = 130, 943 OpFSub = 131, 944 OpIMul = 132, 945 OpFMul = 133, 946 OpUDiv = 134, 947 OpSDiv = 135, 948 OpFDiv = 136, 949 OpUMod = 137, 950 OpSRem = 138, 951 OpSMod = 139, 952 OpFRem = 140, 953 OpFMod = 141, 954 OpVectorTimesScalar = 142, 955 OpMatrixTimesScalar = 143, 956 OpVectorTimesMatrix = 144, 957 OpMatrixTimesVector = 145, 958 OpMatrixTimesMatrix = 146, 959 OpOuterProduct = 147, 960 OpDot = 148, 961 OpIAddCarry = 149, 962 OpISubBorrow = 150, 963 OpUMulExtended = 151, 964 OpSMulExtended = 152, 965 OpAny = 154, 966 OpAll = 155, 967 OpIsNan = 156, 968 OpIsInf = 157, 969 OpIsFinite = 158, 970 OpIsNormal = 159, 971 OpSignBitSet = 160, 972 OpLessOrGreater = 161, 973 OpOrdered = 162, 974 OpUnordered = 163, 975 OpLogicalEqual = 164, 976 OpLogicalNotEqual = 165, 977 OpLogicalOr = 166, 978 OpLogicalAnd = 167, 979 OpLogicalNot = 168, 980 OpSelect = 169, 981 OpIEqual = 170, 982 OpINotEqual = 171, 983 OpUGreaterThan = 172, 984 OpSGreaterThan = 173, 985 OpUGreaterThanEqual = 174, 986 OpSGreaterThanEqual = 175, 987 OpULessThan = 176, 988 OpSLessThan = 177, 989 OpULessThanEqual = 178, 990 OpSLessThanEqual = 179, 991 OpFOrdEqual = 180, 992 OpFUnordEqual = 181, 993 OpFOrdNotEqual = 182, 994 OpFUnordNotEqual = 183, 995 OpFOrdLessThan = 184, 996 OpFUnordLessThan = 185, 997 OpFOrdGreaterThan = 186, 998 OpFUnordGreaterThan = 187, 999 OpFOrdLessThanEqual = 188, 1000 OpFUnordLessThanEqual = 189, 1001 OpFOrdGreaterThanEqual = 190, 1002 OpFUnordGreaterThanEqual = 191, 1003 OpShiftRightLogical = 194, 1004 OpShiftRightArithmetic = 195, 1005 OpShiftLeftLogical = 196, 1006 OpBitwiseOr = 197, 1007 OpBitwiseXor = 198, 1008 OpBitwiseAnd = 199, 1009 OpNot = 200, 1010 OpBitFieldInsert = 201, 1011 OpBitFieldSExtract = 202, 1012 OpBitFieldUExtract = 203, 1013 OpBitReverse = 204, 1014 OpBitCount = 205, 1015 OpDPdx = 207, 1016 OpDPdy = 208, 1017 OpFwidth = 209, 1018 OpDPdxFine = 210, 1019 OpDPdyFine = 211, 1020 OpFwidthFine = 212, 1021 OpDPdxCoarse = 213, 1022 OpDPdyCoarse = 214, 1023 OpFwidthCoarse = 215, 1024 OpEmitVertex = 218, 1025 OpEndPrimitive = 219, 1026 OpEmitStreamVertex = 220, 1027 OpEndStreamPrimitive = 221, 1028 OpControlBarrier = 224, 1029 OpMemoryBarrier = 225, 1030 OpAtomicLoad = 227, 1031 OpAtomicStore = 228, 1032 OpAtomicExchange = 229, 1033 OpAtomicCompareExchange = 230, 1034 OpAtomicCompareExchangeWeak = 231, 1035 OpAtomicIIncrement = 232, 1036 OpAtomicIDecrement = 233, 1037 OpAtomicIAdd = 234, 1038 OpAtomicISub = 235, 1039 OpAtomicSMin = 236, 1040 OpAtomicUMin = 237, 1041 OpAtomicSMax = 238, 1042 OpAtomicUMax = 239, 1043 OpAtomicAnd = 240, 1044 OpAtomicOr = 241, 1045 OpAtomicXor = 242, 1046 OpPhi = 245, 1047 OpLoopMerge = 246, 1048 OpSelectionMerge = 247, 1049 OpLabel = 248, 1050 OpBranch = 249, 1051 OpBranchConditional = 250, 1052 OpSwitch = 251, 1053 OpKill = 252, 1054 OpReturn = 253, 1055 OpReturnValue = 254, 1056 OpUnreachable = 255, 1057 OpLifetimeStart = 256, 1058 OpLifetimeStop = 257, 1059 OpGroupAsyncCopy = 259, 1060 OpGroupWaitEvents = 260, 1061 OpGroupAll = 261, 1062 OpGroupAny = 262, 1063 OpGroupBroadcast = 263, 1064 OpGroupIAdd = 264, 1065 OpGroupFAdd = 265, 1066 OpGroupFMin = 266, 1067 OpGroupUMin = 267, 1068 OpGroupSMin = 268, 1069 OpGroupFMax = 269, 1070 OpGroupUMax = 270, 1071 OpGroupSMax = 271, 1072 OpReadPipe = 274, 1073 OpWritePipe = 275, 1074 OpReservedReadPipe = 276, 1075 OpReservedWritePipe = 277, 1076 OpReserveReadPipePackets = 278, 1077 OpReserveWritePipePackets = 279, 1078 OpCommitReadPipe = 280, 1079 OpCommitWritePipe = 281, 1080 OpIsValidReserveId = 282, 1081 OpGetNumPipePackets = 283, 1082 OpGetMaxPipePackets = 284, 1083 OpGroupReserveReadPipePackets = 285, 1084 OpGroupReserveWritePipePackets = 286, 1085 OpGroupCommitReadPipe = 287, 1086 OpGroupCommitWritePipe = 288, 1087 OpEnqueueMarker = 291, 1088 OpEnqueueKernel = 292, 1089 OpGetKernelNDrangeSubGroupCount = 293, 1090 OpGetKernelNDrangeMaxSubGroupSize = 294, 1091 OpGetKernelWorkGroupSize = 295, 1092 OpGetKernelPreferredWorkGroupSizeMultiple = 296, 1093 OpRetainEvent = 297, 1094 OpReleaseEvent = 298, 1095 OpCreateUserEvent = 299, 1096 OpIsValidEvent = 300, 1097 OpSetUserEventStatus = 301, 1098 OpCaptureEventProfilingInfo = 302, 1099 OpGetDefaultQueue = 303, 1100 OpBuildNDRange = 304, 1101 OpImageSparseSampleImplicitLod = 305, 1102 OpImageSparseSampleExplicitLod = 306, 1103 OpImageSparseSampleDrefImplicitLod = 307, 1104 OpImageSparseSampleDrefExplicitLod = 308, 1105 OpImageSparseSampleProjImplicitLod = 309, 1106 OpImageSparseSampleProjExplicitLod = 310, 1107 OpImageSparseSampleProjDrefImplicitLod = 311, 1108 OpImageSparseSampleProjDrefExplicitLod = 312, 1109 OpImageSparseFetch = 313, 1110 OpImageSparseGather = 314, 1111 OpImageSparseDrefGather = 315, 1112 OpImageSparseTexelsResident = 316, 1113 OpNoLine = 317, 1114 OpAtomicFlagTestAndSet = 318, 1115 OpAtomicFlagClear = 319, 1116 OpImageSparseRead = 320, 1117 OpSizeOf = 321, 1118 OpTypePipeStorage = 322, 1119 OpConstantPipeStorage = 323, 1120 OpCreatePipeFromPipeStorage = 324, 1121 OpGetKernelLocalSizeForSubgroupCount = 325, 1122 OpGetKernelMaxNumSubgroups = 326, 1123 OpTypeNamedBarrier = 327, 1124 OpNamedBarrierInitialize = 328, 1125 OpMemoryNamedBarrier = 329, 1126 OpModuleProcessed = 330, 1127 OpExecutionModeId = 331, 1128 OpDecorateId = 332, 1129 OpGroupNonUniformElect = 333, 1130 OpGroupNonUniformAll = 334, 1131 OpGroupNonUniformAny = 335, 1132 OpGroupNonUniformAllEqual = 336, 1133 OpGroupNonUniformBroadcast = 337, 1134 OpGroupNonUniformBroadcastFirst = 338, 1135 OpGroupNonUniformBallot = 339, 1136 OpGroupNonUniformInverseBallot = 340, 1137 OpGroupNonUniformBallotBitExtract = 341, 1138 OpGroupNonUniformBallotBitCount = 342, 1139 OpGroupNonUniformBallotFindLSB = 343, 1140 OpGroupNonUniformBallotFindMSB = 344, 1141 OpGroupNonUniformShuffle = 345, 1142 OpGroupNonUniformShuffleXor = 346, 1143 OpGroupNonUniformShuffleUp = 347, 1144 OpGroupNonUniformShuffleDown = 348, 1145 OpGroupNonUniformIAdd = 349, 1146 OpGroupNonUniformFAdd = 350, 1147 OpGroupNonUniformIMul = 351, 1148 OpGroupNonUniformFMul = 352, 1149 OpGroupNonUniformSMin = 353, 1150 OpGroupNonUniformUMin = 354, 1151 OpGroupNonUniformFMin = 355, 1152 OpGroupNonUniformSMax = 356, 1153 OpGroupNonUniformUMax = 357, 1154 OpGroupNonUniformFMax = 358, 1155 OpGroupNonUniformBitwiseAnd = 359, 1156 OpGroupNonUniformBitwiseOr = 360, 1157 OpGroupNonUniformBitwiseXor = 361, 1158 OpGroupNonUniformLogicalAnd = 362, 1159 OpGroupNonUniformLogicalOr = 363, 1160 OpGroupNonUniformLogicalXor = 364, 1161 OpGroupNonUniformQuadBroadcast = 365, 1162 OpGroupNonUniformQuadSwap = 366, 1163 OpSubgroupBallotKHR = 4421, 1164 OpSubgroupFirstInvocationKHR = 4422, 1165 OpSubgroupAllKHR = 4428, 1166 OpSubgroupAnyKHR = 4429, 1167 OpSubgroupAllEqualKHR = 4430, 1168 OpSubgroupReadInvocationKHR = 4432, 1169 OpGroupIAddNonUniformAMD = 5000, 1170 OpGroupFAddNonUniformAMD = 5001, 1171 OpGroupFMinNonUniformAMD = 5002, 1172 OpGroupUMinNonUniformAMD = 5003, 1173 OpGroupSMinNonUniformAMD = 5004, 1174 OpGroupFMaxNonUniformAMD = 5005, 1175 OpGroupUMaxNonUniformAMD = 5006, 1176 OpGroupSMaxNonUniformAMD = 5007, 1177 OpFragmentMaskFetchAMD = 5011, 1178 OpFragmentFetchAMD = 5012, 1179 OpImageSampleFootprintNV = 5283, 1180 OpGroupNonUniformPartitionNV = 5296, 1181 OpWritePackedPrimitiveIndices4x8NV = 5299, 1182 OpReportIntersectionNV = 5334, 1183 OpIgnoreIntersectionNV = 5335, 1184 OpTerminateRayNV = 5336, 1185 OpTraceNV = 5337, 1186 OpTypeAccelerationStructureNV = 5341, 1187 OpExecuteCallableNV = 5344, 1188 OpSubgroupShuffleINTEL = 5571, 1189 OpSubgroupShuffleDownINTEL = 5572, 1190 OpSubgroupShuffleUpINTEL = 5573, 1191 OpSubgroupShuffleXorINTEL = 5574, 1192 OpSubgroupBlockReadINTEL = 5575, 1193 OpSubgroupBlockWriteINTEL = 5576, 1194 OpSubgroupImageBlockReadINTEL = 5577, 1195 OpSubgroupImageBlockWriteINTEL = 5578, 1196 OpDecorateStringGOOGLE = 5632, 1197 OpMemberDecorateStringGOOGLE = 5633, 1198 } 1199 1200